#ifndef _workdir_filesystem_File_h
#define _workdir_filesystem_File_h

#include <workdir.filesystem.Abstract.h>
#include <workdir.filesystem.Directory.h>

namespace workdir {

namespace filesystem {

using namespace nemesis;

class File : public Abstract {
public:
   File (Directory* parent, const std::string& name) : Abstract (ClassType::File, parent, name) {;}
   
   void print (const int level) const throw ();
   
   static File* down_cast (Abstract* abstract) throw () {
      return (abstract->getClassType () == ClassType::File) ? static_cast <File*> (abstract): NULL;
   }
   static const File* down_cast (const Abstract* abstract) throw () {
      return (abstract->getClassType () == ClassType::File) ? static_cast <const File*> (abstract): NULL;
   }
};

}
}

#endif
